package com.CST.mapper.cst.cb;

import com.CST.dto.cb.DateDTO;
import com.CST.dto.cb.JxAssetValueDTO;
import com.CST.entity.cb.BdEnumdetail;
import com.CST.entity.cb.JxAssetValue;
import com.CST.entity.cb.JxCost;
import com.CST.entity.cb.JxSalaryProject;
import com.CST.vo.cb.BudgetAssessmentVO;
import com.CST.vo.cb.JXInComeVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author qtx
 * @since 2023-05-18
 */
@Mapper
public interface JxCostMapper extends BaseMapper<JxCost> {

    List<JXInComeVO>  queryInComeVos(@Param("dateDTO") DateDTO dateDTO);


    /**
     * 效益预算报表基础数据
     * 子级科室数据
     * @param dateDTO
     * @return
     */
    List<BudgetAssessmentVO> getInformation(@Param("dto") DateDTO dateDTO);

    /**
     * 根据日期删除对应格式资产明细
     * @param dto
     * @return
     */
    int deleteByDate(JxAssetValueDTO dto);

    /**
     * 批量插入
     * @param insertList
     */
    void saveBatch(List<JxAssetValue> insertList);

    /**
     * 根据月份查询固定资产原值
     *
     * @param year
     * @param month
     * @return
     */
    List<BudgetAssessmentVO> getAssetInformation(Integer year,Integer month);

    /**
     * 包含院区调拨的固定资产原值
     * @param year
     * @param month
     * @return
     */
    List<BudgetAssessmentVO> getAssetInformation2(Integer year, Integer month);

    /**
     * 只含科室共用的固定资产原值
     */
    List<BudgetAssessmentVO> getAssetInformation3(Integer year, Integer month);

    /**
     * 先删后插，删除工资项目
     * @return
     */
    int deleteDate();

    /**
     * 批量插入工资项目
     * @param insertList
     */
    void saveSalaryBatch(List<JxSalaryProject> insertList);

    /**
     * 父级科室编号
     * @return
     */
    List<BudgetAssessmentVO> listParentDeptCode();


    /**
     * 科室薪酬数据
     * @param dateDTO
     * @return
     */
    List<BudgetAssessmentVO> listsaralyData(@Param("salaryDTO") DateDTO dateDTO);



    /**
     * 强制分摊系数关系表
     * @return
     */
    List<BudgetAssessmentVO> getRuleCompelAmortization(@Param("ruleDTO") DateDTO dateDTO);

}
